﻿#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include "game.h"
///////////给出一个包含n个整数的数列，问整数a在数列中的第一次出现是第几个。
//int main()
//{
//	int arr[1001] = { 0 };
//	int i = 0; int n = 0;
//	scanf("%d", &n); int x = 0;
//	for (i = 0; i < n; i++)
//	{
//		scanf("%d", &arr[i]);
//		
//	}
//	int y;
//	scanf("%d", &y);
//	for (i = 0; i < n; i++)
//	{
//		if (arr[i] == y)
//		{
//			printf("%d\n", i + 1);
//			return 0;
//		}
//	}
//		printf("%d\n", -1);
//	return 0;
//}
//int main()
//{
//	int m = 0; int  n = 0;
//	scanf("%d,%d", &m, &n);
//	int i = 0; int x = 0; int max = 0; int row, col; int j = 0;
//	for (i = 0; i < m; i++)    //打印几行；
//	{
//		j = 0;
//		for (j = 0; j < n; j++)
//		{    
//			scanf("%d", &x);
//			if (x > max)
//			{
//				max = x;
//				row = i+1; col = j+1;
//			}
//		}
//	}
//	printf("Input m, n:Input %d*%d array:\nmax=%d, row=%d, col=%d\n", m, n, max, row, col);
//
//	return 0;
//}
// /////////////////////////////////二分查找20min；
//int main()
//{
//	 int arr[20] = { 0 };
//	  int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	for (i = 0; i < n; i++)
//	{
//		scanf("%d", &arr[i]);
//
//	}
//	int left = 0; int target = 0;
//	scanf("%d", &target);
//	 int right = n-1;
//	 int mid = (0 + n-1) / 2;
//	while (left<=right)
//	{
//		if (arr[mid] == target)
//		{
//			printf("%d\n", mid+1);
//			return 0;
//		}
//		else if (arr[mid] < target)
//		{
//			left = mid+1;
//			mid = (left + right) / 2;
//		}
//		else
//		{
//			right = mid-1;
//			mid = (left + right) / 2;
//
//		}
//	}
//	printf("None\n");
//	return 0;
//}
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	printf("a=%d b=%d\n", a, b);
//	int tem = a;
//	a = b;
//	b = tem;
//	printf("a=%d b=%d\n", a,b);
//
//	return 0;
//}
//#include<stdio.h>

      /*********Begin*********/
//int main()
//{
//    int x;
//    scanf("%d", &x);
//    int arr[3] = { 0 }; int tem = 0; int i = 0;
//    for ( i = 0; i < 3; i++)
//    {
//        arr[i] = x % 10;
//        x /= 10;
//    }
//    for (i = 2; i >= 0; i--)
//    {
//        printf("%d ", arr[i]);
//    }
//    return 0;
//}////////////////编程求以a、b、c为边长的三角形的面积
//int main()
//{
//   float a, b, c;
//   scanf("%f %f %f", &a, &b, &c);
//    float p = (a + b + c) / 2;
//    float s = sqrt(p * (p - a) * (p - b) * (p - c));
//    printf("%.3f\n", s);
//    return 0;
//}
//#include<stdio.h>
//long long solve(long long n) {
//    /*********Begin*********/
//    if (n == 1)
//    {
//        return 1;
//    }
//    else
//        return n * solve( n - 1);
//
//    /*********End**********/
//}
//int main(void)
//{
//    long long n;
//    scanf("%lld", &n);
//    long long ans = 0;
//    for (long long i = 1; i <= n; i++)
//        ans += solve(i);
//    printf("%lld", ans);
//    return 0;
//}
//#include<stdio.h>
//void solve(int n) {
//    printf("%d", n % 10);
//    /*********Begin*********/
//    n /= 10;
//    /*********End**********/
//    if (n > 0) solve(n);
//}
//int main(void)
//{
//    int n;
//    scanf("%d", &n);
//    solve(n);
//    return 0;
//}
//////////////////////猜数字游戏。
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
//void game()
//{
//    int n = 0;
//    int r = rand() % 100 + 1;
//    printf("请输入数字\n");
//    scanf("%d", &n);
//    if (n < r)
//        printf("猜小了\n");
//    else if (n > r)
//        printf("猜大了\n");
//    else
//        printf("猜对了\n");
//}
//void menu()
//{
//    printf("****************************\n");
//    printf("**********1.play************\n");
//    printf("**********0.exit************\n");
//    printf("****************************\n");
//}
//int main()
//{
//    int input = 0;
//    srand((unsigned int)time(NULL));
//    do
//    {
//        menu();
//        printf("请选择\n");
//        scanf("%d", &input);
//        switch (input)
//        {
//        case 1:  game(); break;
//        case 0:  printf("游戏结束\n"); break;
//        default: printf("输入错误\n"); break;
//        }
//    } while (input);
//    return 0;
//}
//void game()
//{
//    int guess = 0;
//    int r = rand() % 100 + 1;
//    while (1)
//    {
//        printf("请输入数字\n");
//        scanf("%d", &guess);
//        if (guess > r)
//            printf("猜大了\n");
//        else if (guess < r)
//            printf("猜小了\n");
//        else
//        {
//            printf("猜对了\n");
//            break;
//        }
//    }
//
//}
//void menu()
//{
//    printf("****************************\n");
//    printf("**********1.play************\n");
//    printf("**********0.exit************\n");
//    printf("****************************\n");
//}
//int main()
//{
//    srand((unsigned int)time(NULL));
//    int input = 0;
//    do
//    {
//        menu();
//        printf("请选择\n");
//        scanf("%d", &input);
//        switch (input)
//        {
//        case 1:
//            game();
//            break;
//        case 0:
//            printf("exit\n");
//            break;
//        default:
//            printf("输入错误\n");
//            break;
//        }
//    } while (input);
//    return 0;
//}
//int main()
//{
//    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//    int i = 0;
//    int target = 0; int left = 0;
//    scanf("%d", &target);
//    int right = 9; int mid = (left + right) / 2;
//    while (left <= right)
//    {
//        if (arr[mid] > target)
//        {
//            right = mid - 1;
//            mid = (left + right) / 2;
//        }
//        else if (arr[mid] < target)
//        {
//            left = mid + 1;
//            mid = (left + right) / 2;
//        }
//        else
//        {
//            printf("找到了，下标是%d\n", mid);
//            return 0;
//        }
//    }
//    printf("NONE\n");
//    return 0;
//}
//int main()
//{
//    float a = 0.0f;
//    scanf("%f", &a);
//    float b = sqrt(a);
//    printf("%f\n", b);
//    return 0;
//}
//#include "add.h"
//int main()
//{
//    int a, b;
//    scanf("%d%d", &a, &b);
//    int r = add(a, b);
//    printf("%d\n", r);
//    exchange(&a, &b);
//    printf("%d %d\n", a, b);
//    return 0;
//}
//void test()
//{
//   static int i = 0;
//    printf("%d ", i);
//    i++;
//}
//int main()
//{
//    int i = 0;
//    for (i = 0; i < 5; i++)
//    {
//        test();
//    }
//    return 0;
//}
 ////////////////////////////////扫雷游戏

#include "game.h"
void menu()
{
    printf("***********************\n");
    printf("***** 1. play *****\n");
    printf("***** 0. exit *****\n");
    printf("***********************\n");
}
void game()
{
    char mine[ROWS][COLS]; //存放布置好的雷
    char show[ROWS][COLS]; //存放排查出的雷的信息
    //初始化棋盘
    //1. mine数组最开始是全'0'
    //2. show数组最开始是全'*'
    InitBoard(mine, ROWS, COLS, '0');
    InitBoard(show, ROWS, COLS, '*');
    //打印棋盘
    //DisplayBoard(mine, ROW, COL);
    DisplayBoard(show, ROW, COL);
    //1. 布置雷
    SetMine(mine, ROW, COL);
    //DisplayBoard(mine, ROW, COL);
    //2. 排查雷
    FindMine(mine, show, ROW, COL);
}
int main()
{
    int input = 0;
    srand((unsigned int)time(NULL));
    do
    {
        menu();
        printf("请选择:>");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 0:
            printf("退出游戏\n");
            break;
        default:
            printf("选择错误，重新选择\n");
            break;
        }
    } while (input);
    return 0;
}